/**
 * 用于检查登录数据是否合法并完成登录功能
 */

// 拿到用于登录的大盒子
const login_box = document.getElementById('content_login')
// 拿到用户名或邮箱输入框
const name_or_email = document.querySelector('#username > input')
// 拿到密码盒子
const pwd_box = document.getElementById('password')
// 拿到密码输入框
const pwd = document.querySelector('#password > input')
// 拿到密码盒子后面的验证码盒子
const verification_code_box = document.getElementById('verification_code')
// 拿到验证码中的输入框
const verification_code = document.querySelector('#verification_code > input')

// 准备放用户名的提示消息
let name_msg = document.createElement('p')
// 准备放密码的提示消息
let pwd_msg = document.createElement('p')

// 用户名是否验证成功
let name_or_email_test = false
// 密码是否验证成功
let pwd_test = false
// 是否是邮箱
let isEmail = false

// 邮箱正则
let email_Reg = /^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
// 密码正则
let pwd_Reg = /^[a-z0-9_-]{6,16}$/


// 当焦点从用户框移出时，进行正则验证
regularTestNameOrEmail()
// 当焦点从密码框移出时，进行正则验证
regularTestPwd()

// regularTestNameOrEmail()实现
function regularTestNameOrEmail(){
    // 给用户名或邮箱框绑定事件
    name_or_email.addEventListener('blur',()=>{
        // 拿到用户名或邮箱的值
        let name_or_email_value = name_or_email.value
 
        // 如果用户名是空或者长度小于三，弹出提示消息
        if(name_or_email_value === null || name_or_email_value.length < 3){
            // 判断是否已经添加了消息
            if(name_msg.innerText === ''){
                name_msg.innerText = '用户名为空或者长度小于三!'
    
                login_box.insertBefore(name_msg,pwd_box)
            }

            // 设置密码盒子的上外边距
            pwd_box.style.marginTop = 5 + 'px'

            name_or_email_test = false
        }else{
            // 移出弹出的提示消息
            if(name_msg.innerText != ''){
                name_msg.innerHTML = ''
                login_box.removeChild(name_msg)
            }

            // 设置密码盒子的上外边距
            pwd_box.style.marginTop = 15 + 'px'

            // 判断是否是邮箱
            if(email_Reg.test(name_or_email_value)){
                console.log('是邮箱');
                isEmail = true
            }else{ // 不是邮箱
                isEmail = false
            }

            name_or_email_test = true
        }
    })
}

// regularTestPwd()实现
function regularTestPwd(){
    pwd.addEventListener('blur',()=>{
        // 拿到密码框中的值
        let pwd_value = pwd.value

        // 进行正则判断
        if(pwd_Reg.test(pwd_value)){
            if(pwd_msg.innerText != ''){
                pwd_msg.innerText = ''
                // 不等于空，从登陆中移出
 
                login_box.removeChild(pwd_msg)
            }

            pwd_test = true
        }else{
            if(pwd_msg.innerText === ''){
                // 在密码框下添加消息
                pwd_msg.innerText = '密码应在6-16字符以内'

                login_box.insertBefore(pwd_msg,verification_code_box)
            }
           
            pwd_test = false
        }
    })
}

// 发送同步请求
$('#submit').click(function() {

    // 先让用户框和密码框获取、失去焦点
    name_or_email.focus()
    name_or_email.blur()

    pwd.focus()
    pwd.blur()

    // 如果用户名和密码正则验证成功，并且验证码不为空，进行同步登录
    if(name_or_email_test && pwd_test && (verification_code.value != '')){
    	   console.log('成功')
    	   // 发送post请求
    	   $.StandardPost('login',{
    		   'isEmail': isEmail,
               'username': name_or_email.value,
               'password': pwd.value,
               'verificationCode': verification_code.value,
               'isRemb': $('#check_pwd > span > input').prop('checked')
    	   });
    }else{
        
    }
})



